<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>颜色循环示例</title>
    <style>
        /* 设置容器样式 */
        
        .container {
            display: flex;
            gap: 20px;
            flex-direction: column;
            /* 设置间距 */
        }
        /* 设置 div 的初始样式 */
        
        .box {
            /* width: 100px; */
            width: 400px;
            margin: 1px auto;
            height: 50px;
            background-color: grey;
            transition: background-color 0.5s ease;
            /* 添加颜色过渡效果 */
        }
    </style>
</head>

<body>
    <div class="container">
        <div class="box" id="box1"></div>
        <div class="box" id="box2"></div>
        <div class="box" id="box3"></div>
        <div class="box" id="box4"></div>
    </div>

    <script>
        // 获取所有 div 元素
        const boxes = document.querySelectorAll('.box');
        let currentIndex = 0; // 当前高亮的 div 数量

        // 定义颜色切换函数
        function changeColor() {
            // 将所有 div 重置为灰色
            boxes.forEach(box => box.style.backgroundColor = 'grey');

            // 将前 currentIndex + 1 个 div 设置为金色
            for (let i = 0; i <= currentIndex; i++) {
                boxes[i].style.backgroundColor = 'gold';
            }

            // 更新索引，循环到下一个 div
            currentIndex = (currentIndex + 1) % boxes.length;
        }

        // 每 2 秒调用一次 changeColor 函数
        setInterval(changeColor, 5000);
    </script>
</body>

</html>